<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    function* gen(arg) {
      console.log(arg);   // 输出参数
      let one = yield 1;
      console.log(one);   // 输出 BBB
      let tow = yield 2;
      console.log(tow);   // 输出 CCC
      yield 3;
    }

    // 执行获取迭代器对象
    let iterator = gen('AAA');  // 给生成器传参
    console.log(iterator.next());
    console.log(iterator.next('BBB'));      // next方法也可以传入实参，给到第一段的 yield ，作为参数
    console.log(iterator.next('CCC'));      // 每次使用 next() 都会执行下一段 yield
    console.log(iterator.next());   // 这次 next() 结束了


  </script>
</body>

</html>